home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 5 / Gekikoh Dennoh Club Vol. 5 (Japan).7z / Gekikoh Dennoh Club Vol. 5 (Japan) (Track 01).bin / internet / tcppack / tcppackb.lzh / src / libnetwork / route.c < prev    next >
C/C++ Source or Header  |  1995-11-07  |  2KB  |  103 lines

  1. /*
  2.  * route.c
  3.  *
  4.  * Copyright (C) 1994 First Class Technology.
  5.  */
  6.  
  7. #include<stdio.h>
  8. #include<stdlib.h>
  9. #include<string.h>
  10.  
  11. #include"tcpipdrv.h"
  12. #include"network.h"
  13.  
  14. _ti_func search_ti_entry (void);
  15.  
  16. /************************************************
  17.  *                        *
  18.  ************************************************/
  19. rtable *
  20. rt_top (route **def)
  21. {
  22.   _ti_func func = search_ti_entry ();
  23.  
  24.   if (func)
  25.     return (rtable *) func (_TI_rt_top, (long *)def);
  26.   return NULL;
  27. }
  28.  
  29. /************************************************
  30.  *                        *
  31.  ************************************************/
  32. route *
  33. rt_lookup (long ip)
  34. {
  35.   _ti_func func = search_ti_entry ();
  36.  
  37.   if (func)
  38.     return (route *) func (_TI_rt_lookup, (long *)ip);
  39.  
  40.   return NULL;
  41. }
  42.  
  43. /************************************************
  44.  *                        *
  45.  ************************************************/
  46. route *
  47. rt_lookupb (long ip, unsigned int bits)
  48. {
  49.   _ti_func func = search_ti_entry ();
  50.   long arg[2];
  51.  
  52.   arg[0] = ip;
  53.   arg[1] = bits;
  54.   if (func)
  55.     return (route *) func (_TI_rt_lookupb, arg);
  56.  
  57.   return NULL;
  58. }
  59.  
  60. /************************************************
  61.  *                        *
  62.  ************************************************/
  63. int
  64. rt_drop (long target, unsigned int bits)
  65. {
  66.   _ti_func func = search_ti_entry ();
  67.   long arg[2];
  68.  
  69.   arg[0] = target;
  70.   arg[1] = bits;
  71.   if (func)
  72.     return (long)func (_TI_rt_drop, arg);
  73.  
  74.   return -1;
  75. }
  76.  
  77. /************************************************
  78.  *                        *
  79.  ************************************************/
  80. route *
  81. rt_add (long ip, unsigned int bits, long gateway, iface * Iface,
  82.     long metric, long ttl, char private)
  83. {
  84.   _ti_func func = search_ti_entry ();
  85.   long arg[7];
  86.  
  87.   arg[0] = ip;
  88.   arg[1] = bits;
  89.   arg[2] = gateway;
  90.   arg[3] = (long)Iface;
  91.   arg[4] = metric;
  92.   arg[5] = ttl;
  93.   arg[6] = private;
  94.     
  95.   if (func)
  96.     return (route *) func (_TI_rt_add, arg);
  97.  
  98.   return NULL;
  99. }
  100.  
  101.  
  102.  
  103.